<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=2">
<meta name="theme-color" content="#222">
<meta name="generator" content="Hexo 5.3.0">
  <link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon-next.png">
  <link rel="icon" type="image/png" sizes="32x32" href="/images/favicon-32x32-next.png">
  <link rel="icon" type="image/png" sizes="16x16" href="/images/favicon-16x16-next.png">
  <link rel="mask-icon" href="/images/logo.svg" color="#222">

<link rel="stylesheet" href="/css/main.css">


<link rel="stylesheet" href="/lib/font-awesome/css/font-awesome.min.css">

<script id="hexo-configurations">
    var NexT = window.NexT || {};
    var CONFIG = {"hostname":"example.com","root":"/","scheme":"Muse","version":"7.8.0","exturl":false,"sidebar":{"position":"left","display":"post","padding":18,"offset":12,"onmobile":false},"copycode":{"enable":false,"show_result":false,"style":null},"back2top":{"enable":true,"sidebar":false,"scrollpercent":false},"bookmark":{"enable":false,"color":"#222","save":"auto"},"fancybox":false,"mediumzoom":false,"lazyload":false,"pangu":false,"comments":{"style":"tabs","active":null,"storage":true,"lazyload":false,"nav":null},"algolia":{"hits":{"per_page":10},"labels":{"input_placeholder":"Search for Posts","hits_empty":"We didn't find any results for the search: ${query}","hits_stats":"${hits} results found in ${time} ms"}},"localsearch":{"enable":true,"trigger":"auto","top_n_per_article":1,"unescape":false,"preload":false},"motion":{"enable":true,"async":false,"transition":{"post_block":"fadeIn","post_header":"slideDownIn","post_body":"slideDownIn","coll_header":"slideLeftIn","sidebar":"slideUpIn"}},"path":"search.json"};
  </script>

  <meta name="description" content="Here&#39;s something encrypted, password is required to continue reading.">
<meta property="og:type" content="article">
<meta property="og:title" content="wxpython使用opencv显示摄像头视频闪烁问题">
<meta property="og:url" content="http://example.com/2024/01/01/wxpython%E4%BD%BF%E7%94%A8opencv%E6%98%BE%E7%A4%BA%E6%91%84%E5%83%8F%E5%A4%B4%E8%A7%86%E9%A2%91%E9%97%AA%E7%83%81%E9%97%AE%E9%A2%98/index.html">
<meta property="og:site_name" content="学无止境">
<meta property="og:description" content="Here&#39;s something encrypted, password is required to continue reading.">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2024-01-01T13:32:22.000Z">
<meta property="article:modified_time" content="2024-01-01T13:32:22.000Z">
<meta property="article:author" content="xudonglei">
<meta property="article:tag" content="wxpython">
<meta name="twitter:card" content="summary">

<link rel="canonical" href="http://example.com/2024/01/01/wxpython%E4%BD%BF%E7%94%A8opencv%E6%98%BE%E7%A4%BA%E6%91%84%E5%83%8F%E5%A4%B4%E8%A7%86%E9%A2%91%E9%97%AA%E7%83%81%E9%97%AE%E9%A2%98/">


<script id="page-configurations">
  // https://hexo.io/docs/variables.html
  CONFIG.page = {
    sidebar: "",
    isHome : false,
    isPost : true,
    lang   : 'zh-CN'
  };
</script>

  <title>wxpython使用opencv显示摄像头视频闪烁问题 | 学无止境</title>
  






  <noscript>
  <style>
  .use-motion .brand,
  .use-motion .menu-item,
  .sidebar-inner,
  .use-motion .post-block,
  .use-motion .pagination,
  .use-motion .comments,
  .use-motion .post-header,
  .use-motion .post-body,
  .use-motion .collection-header { opacity: initial; }

  .use-motion .site-title,
  .use-motion .site-subtitle {
    opacity: initial;
    top: initial;
  }

  .use-motion .logo-line-before i { left: initial; }
  .use-motion .logo-line-after i { right: initial; }
  </style>
</noscript>

</head>

<body itemscope itemtype="http://schema.org/WebPage">
  <div class="container use-motion">
    <div class="headband"></div>

    <header class="header" itemscope itemtype="http://schema.org/WPHeader">
      <div class="header-inner"><div class="site-brand-container">
  <div class="site-nav-toggle">
    <div class="toggle" aria-label="切换导航栏">
      <span class="toggle-line toggle-line-first"></span>
      <span class="toggle-line toggle-line-middle"></span>
      <span class="toggle-line toggle-line-last"></span>
    </div>
  </div>

  <div class="site-meta">

    <a href="/" class="brand" rel="start">
      <span class="logo-line-before"><i></i></span>
      <h1 class="site-title">学无止境</h1>
      <span class="logo-line-after"><i></i></span>
    </a>
      <p class="site-subtitle" itemprop="description">Do not bb, show me the example</p>
  </div>

  <div class="site-nav-right">
    <div class="toggle popup-trigger">
        <i class="fa fa-search fa-fw fa-lg"></i>
    </div>
  </div>
</div>




<nav class="site-nav">
  <ul id="menu" class="menu">
        <li class="menu-item menu-item-home">

    <a href="/" rel="section"><i class="fa fa-fw fa-home"></i>首页</a>

  </li>
        <li class="menu-item menu-item-tags">

    <a href="/tags/" rel="section"><i class="fa fa-fw fa-tags"></i>标签</a>

  </li>
        <li class="menu-item menu-item-categories">

    <a href="/categories/" rel="section"><i class="fa fa-fw fa-th"></i>分类</a>

  </li>
        <li class="menu-item menu-item-archives">

    <a href="/archives/" rel="section"><i class="fa fa-fw fa-archive"></i>归档</a>

  </li>
      <li class="menu-item menu-item-search">
        <a role="button" class="popup-trigger"><i class="fa fa-search fa-fw"></i>搜索
        </a>
      </li>
  </ul>
</nav>



  <div class="search-pop-overlay">
    <div class="popup search-popup">
        <div class="search-header">
  <span class="search-icon">
    <i class="fa fa-search"></i>
  </span>
  <div class="search-input-container">
    <input autocomplete="off" autocapitalize="off"
           placeholder="搜索..." spellcheck="false"
           type="search" class="search-input">
  </div>
  <span class="popup-btn-close">
    <i class="fa fa-times-circle"></i>
  </span>
</div>
<div id="search-result">
  <div id="no-result">
    <i class="fa fa-spinner fa-pulse fa-5x fa-fw"></i>
  </div>
</div>

    </div>
  </div>

</div>
    </header>

    
  <div class="back-to-top">
    <i class="fa fa-arrow-up"></i>
    <span>0%</span>
  </div>


    <main class="main">
      <div class="main-inner">
        <div class="content-wrap">
          

          <div class="content post posts-expand">
            

    
  
  
  <article itemscope itemtype="http://schema.org/Article" class="post-block" lang="zh-CN">
    <link itemprop="mainEntityOfPage" href="http://example.com/2024/01/01/wxpython%E4%BD%BF%E7%94%A8opencv%E6%98%BE%E7%A4%BA%E6%91%84%E5%83%8F%E5%A4%B4%E8%A7%86%E9%A2%91%E9%97%AA%E7%83%81%E9%97%AE%E9%A2%98/">

    <span hidden itemprop="author" itemscope itemtype="http://schema.org/Person">
      <meta itemprop="image" content="/images/avatar.gif">
      <meta itemprop="name" content="xudonglei">
      <meta itemprop="description" content="搬砖 嵌入式">
    </span>

    <span hidden itemprop="publisher" itemscope itemtype="http://schema.org/Organization">
      <meta itemprop="name" content="学无止境">
    </span>
      <header class="post-header">
        <h1 class="post-title" itemprop="name headline">
          wxpython使用opencv显示摄像头视频闪烁问题
        </h1>

        <div class="post-meta">
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="fa fa-calendar-o"></i>
              </span>
              <span class="post-meta-item-text">发表于</span>

              <time title="创建时间：2024-01-01 21:32:22" itemprop="dateCreated datePublished" datetime="2024-01-01T21:32:22+08:00">2024-01-01</time>
            </span>
            <span class="post-meta-item">
              <span class="post-meta-item-icon">
                <i class="fa fa-folder-o"></i>
              </span>
              <span class="post-meta-item-text">分类于</span>
                <span itemprop="about" itemscope itemtype="http://schema.org/Thing">
                  <a href="/categories/python/" itemprop="url" rel="index"><span itemprop="name">python</span></a>
                </span>
            </span>

          
            <span id="/2024/01/01/wxpython%E4%BD%BF%E7%94%A8opencv%E6%98%BE%E7%A4%BA%E6%91%84%E5%83%8F%E5%A4%B4%E8%A7%86%E9%A2%91%E9%97%AA%E7%83%81%E9%97%AE%E9%A2%98/" class="post-meta-item leancloud_visitors" data-flag-title="wxpython使用opencv显示摄像头视频闪烁问题" title="阅读次数">
              <span class="post-meta-item-icon">
                <i class="fa fa-eye"></i>
              </span>
              <span class="post-meta-item-text">阅读次数：</span>
              <span class="leancloud-visitors-count"></span>
            </span>
  
  <span class="post-meta-item">
    
      <span class="post-meta-item-icon">
        <i class="fa fa-comment-o"></i>
      </span>
      <span class="post-meta-item-text">Valine：</span>
    
    <a title="valine" href="/2024/01/01/wxpython%E4%BD%BF%E7%94%A8opencv%E6%98%BE%E7%A4%BA%E6%91%84%E5%83%8F%E5%A4%B4%E8%A7%86%E9%A2%91%E9%97%AA%E7%83%81%E9%97%AE%E9%A2%98/#valine-comments" itemprop="discussionUrl">
      <span class="post-comments-count valine-comment-count" data-xid="/2024/01/01/wxpython%E4%BD%BF%E7%94%A8opencv%E6%98%BE%E7%A4%BA%E6%91%84%E5%83%8F%E5%A4%B4%E8%A7%86%E9%A2%91%E9%97%AA%E7%83%81%E9%97%AE%E9%A2%98/" itemprop="commentCount"></span>
    </a>
  </span>
  
  

        </div>
      </header>

    
    
    
    <div class="post-body" itemprop="articleBody">

      
        <div class="hbe hbe-container" id="hexo-blog-encrypt" data-wpm="Oh, this is an invalid password. Check and try again, please." data-whm="OOPS, these decrypted content may changed, but you can still have a look.">
  <script id="hbeData" type="hbeData" data-hmacdigest="bdab23d1fa998ffb91b007dd4732da234c7baaa07a35c460ad68948c2b892816">ecea82159f007e93e32994320b68bd3d2fcbc60653203a26d7bcc645ad43a5b000295b198238b36abf3753dc58df5e52620ba14871778fc53d7d996a73e9fb09fa4be4a7c8706d80cddc631efc4f7221ef3e4e822dbcf8ccfe891b75ab736cc4132e5ecd13561e4ba2e06570943ae0e4c66e4db3a2d81fd782e2b79ee236f7b3840e371112121d936ca4da9ef17196a304a6e1c615adb632cc7dba7fa6fcd4d917920d41345c427ccc4166ad3ef40bc1c9845f381f409d0b487f9ea31d99d6076f3d95585825219ce1906a98dedef92010572c7b8d9448b6ddd1241e8abee930afddd89c4c750ba4f2af70bb0bc723a8040a358dcc145c15b036bdaaa9a3587b5e37499a2eb00032b69d468e030c8c9e4673fffa8ed11e6622d2e85facfad5ff1da6c971e8887031735ee9c2ac1c549b935107873bca5cd37a815666cd600456b89cbb8566bed8a2bb71c1d05416b6ab8a674372ddbd8b7fc7215687f870f2038cd0c2a49fa1dd35bbe6d6a3df26f50dbf2da77d1aeb34d2d60d1a712383754dfd0eea091f9d2eed74f31418bc82899d0778371fe8823b8200841aaf601e474c1bddb0fd01e31b68a01354697d738dcf09ebd3b1c7e966e7d2451af94aaee4a182e1a88e47cc14397d2daeac773b318fc76ff56c7b4da4a6624675473cddcc860e18e740ed8f0fce8715844d644391f4350034c1a7f5a6655852638f06cda44cfdefdcb46488a218413674b608e14ab05c6a15bb6429262e0ae8db983a6d5a971f8619a0ea29b8e85c58aaf93c1aad1cb78395d952577aab23738e4cc587c4266edd1b98b52269e4fbdeab4e0739b5178a839e5bffcf6a2fd309c1e03aa8d94c0b200cc8da4168b7b0ac9a24e1bfa05a4a071503b66019a67330e448c10a46433b6967d254d0e2dba8468065d567d02feb3288262a1c3a2ea457fcee96449c703b2452eaa6627b043772dac6c3e934d0157f62ebe72531abc4555379edcf2e9038152a1d67c7bef41322e6d128f42ba5259f0d62dadbd734794ad07344c7e9cd437b1ec98500dc81956c89e13b684a377956a859861a10111c8c2eb2340e320f6a9376c7fcc1bf0ff11d1fe95e60bc566c2430bca1773cd02e82369abf6da4afe5039bbda495d6b0352113f6941cd08dfb0048381cbc90e2c6fda21f1c9f69f323006e484828987180feee5bb4995b2f4902d78fa843ea9439706aa2ce51e5c62d50cc473ebfef7adfceefca4943317fb41a98d4e30d4b704d4d18c674d3edc721015669bbadea3c83e64051c8d7ef2b9ddb954248e5c841bf88c517ac6e1734ca483b7da8859f4b8f6cf14956ebc8939ccdd08ed5f2a167e4d8388447965784e145a95b04b1af9cc0ed9d3228c241d32accbeebf98636c66b4de70b6853a48d2a0bbcec616b8bb9afef3bb398d5c42ba0cb5a561e10cc0d023d2bea80cd63ec13a3452a5547045f82326eefd12b8f801c7753ee132e99d29318371d83420e5b65821deec345d81ae874919d2f9fb2fc9788782c2145ad8a416e9d38c3b5783879117893e77fd0dd26ac44ef788722176037f03333c0408d91bee8419feddf7cfcb52a23d81c9b47d0c85b0d24918b591c6560f3722c1295c66920092cac73ece939a5a4270d39573901b3c0e2a707ca006e6ee48de43417fdf887f6e235b2109e79c5207b98b0cbf18a95b67a66c9d6e348acd980900ab7d08e55955ee82702ae22e821208f335212f798b70c989652cf811c52ad41e41ab0a083382d6a92c927b4f077e0d71aad7eea6986eb1253c3377bc11e520e730752e13d34a2d0fa0d25b1a0ee4ee63892d3ec00ab62875349e1d7fffbdfac7b99c0b911dae0afa2eaa8d8b9f5964c9b75e124881f810ad64f11a9144a84f7c29ee4ee74f3f8097b5935b84acfd43776cf5dc7c808ed4a337b103c1a25e19a21767ce81573b3f0f380616e7ab9356333456b60238b83c1efbde05d6c23de226e40bf118311254a9678b30c9582b06d8e93270289ea856b07b452a9930c03fabc5192ff0f572355945ad0f42d9f8016c32d2f6786e279429641e899b4acd3f489e6922ade7c61e1bf44e98b5add8030de8f22fa632b9aef96757e77b613cb6cad7fdbe44650d1b3f9d883bd05457ef712a065aa9aa57174f6fbe5f1813ac8bf1e8ecb773a5995b5302818a0a65018df579d4cb8a7fefe26ce1f895283566d86b635f51d4c323b05c122ac6f1f4cd1f2c536b384610771e444f7671ed97d0a6a8db9762ba040ecdd6e50a911618cf6bcc86635521576e305ba14ba0c8e56bb67a488b3efd1b93732781e44417cf75eab743242e4a346f84b06b2bb5295a1d7c3bc772eae218a3c89e1f3fae3a01ad63a59e77fd613b2dd2a6d517d25ba9a8282c8bca50f8b25ee0ba129258c4731ff62d9d7c455d71f9e22631b16656a462a3805f17f07c32934eab8cb47e22cda1a9b1a549f7038c24c14a9483758803a3df1fc8b1daaa49760a8e12c4ff851180858656f71b98d0986a9356e69f8a624ecad8fa9a0c75cb9014e526c29426e03a7ba3e41b903612bc766b2df0734f0aef4fcc3a5ee11dd05f98fecd9dfbc5f1c89a5a8f4f5ffa51e2fea6de0bb37622c51d7e43668d65ffc2294e29276eb437119ba5618747be17136f1a1b75a6fbcce9755de7228439da09ad0db51fcefdb8dfb54aeb1d89f9603acf44217859ec370d80991b8e6cddb7ac7104ed86a15d90987bf21910275d184cf0ce0a402e6350cb61f8574f2ae158b55aa6622d57adfb9965581bf752652f513af27d3e93cb42e60780b84a014902524bbe304f94dc633b3248201e1e09be7f3e354f47e245253e07b2bcd9ebe009befa2b0bc7c3b52c6b851719c6bef9ab168c84935d85bb0c179f496ddaf2d8ba418e22711aba180caa3288329bbb5be67d438116fb99e6fa6c50ab0d68a657dcf7c643f80431fc18f994e3db0aeb773bb1767f9e8c6d01550025d08a475dffe8b52080ff241339255974b00f8c6df71c9b84c7224680d62033822ae2351ccb1adffdf24a8999bd5691da91738fd68f22a02ee181cacd2282265b981fca5e20182bce64f32ebc7836e28280bedc07d8f0d9d019b817c00eb8cca2369ce4aed203e972a9e87f7c3682188ae4ad725c6162a54c3b191483d8c2abea5fea28c0e18f308e932dd14c6703b29316a8f5ab66d64a2297e15d5e320082c2534b5df73fbc879a94747d03c08934357c4e6122ecb04805d692927348472237c13d5069279165cb99081b117863fbaf8a94820c74c0499141b858fdcf2ba702dc7a53f112894e811ec3fb38574f3cac57be7e0b407575d12a41964032f8a0d4a8249b57afd72240f9a69f9df677fce822956f70a283489380166d5c563b6f8e98c8c06dc097ea7dfb81f791c18d5ac2355d1208533885c5ac34f65ea9541214285aa337e3a66e383f45762a98d9c4d4390b7bd683b80e88f82796bf984c109061c9a9a50c69845f3e32839bf4a94732785ebf8b79f741e973d2ab7f78103f8446c43b4fd4f4decf9ace6afef4be41e0f709b3287a68d8db7c8ed53738a152fb55f22bfbdb7ccfa95f4f39b39c9b2f52cfecd502796b45343c207174ac4b6c8f5f93ecc8841dc56da966c995d2405a0a59863672cbb8187e8f62224a114992efc97fe9ef56bc1304459a5e43f965ae90e46675a8c8d7883a28b4c8871544b48c687328e41c116a77f01e76bd7e1ec22b10371330e78c104b811220a6d65e0d4d0ffdfe264c20484831a6948a30bf788d57a328bfb13022ab8166c6b4098bbd374c8f219e334d2647c8ef63d3b922d0e58ccac141688c00e231c7c93a8c6a6c5bc368a5fc62902be0b6f6696020433a0c368160b9d5fbcffdeec429c6578f9675eb936d63cc51c3aa806a416009fb478d77549f134be1e124a1a84de0ac55874a8fb884439b697d01790f6af18e0d42bd74b772032b20844742462927efd6c9eff00d0cbe2fa8d29b4453bb2f583cb4389ea14a5a6bee7308ef8d86d5c952098a0ea25fe75b008811437984e2becbf8033a4056e076aab71a5f00c72294275ef0a2ef7f0d98bbd6ca5fd1191f2f6c55c64d176002675ed05fad581a3e0dc9f843c6845704111ae7c75b80b893715ebbbf63b74f83b9fa16f7bea55511c4e53e58cf21c19dbce0f6410320aeecfc51664c46963047d8f19612b68f6b41339d17dfd2fab535739e1073e89d94070af47386a8d18ff21d5ce651a60956e5cf1ffb46658d400c86d134b3d88474b56c355b251af27e18404ffe88249db5d4c8fd04b190babc105a9267e659479469847e4b4bdd6d1154dfd26f2f61721b416d540936932cd0f6bf6262f89aa71ca55c07f8be3254a580a1fbe94df2d4ee614d804f9d7fe02b28fbec988a5c52752d027238d4502ba22db05a4af9bc5715fa6317a36b5c9b1904cb289cbe054e4a779c3567c35cf12e3d162c9f55025186e369f36225a97e7e4a14db66071d401a37791c70006b97fc840715d04d8b0ec0c35448ee84c510577c3252c227655a714d7992519bce266f885fe0522259bad79c3220d4b0412a31790d356266baaf670835957ba8b16e36db29f9dc62b53ac2aae56fefc7c8815b94e4ed76b0f754174bb4b5583c85a45342254b7343a880f893364809dd461697ae392b6ce4097922eb2191fc115f5103a36b7e358eb4a039668b95d5dd93c714720624cc11da42fa426d7782893a91c756d5ac17cd343ebc4f618f12e1101f9d2e75793c450fa44780751b37b6705642e338d741add971978735825a3daaaa48644e310496891269681f9803ce841df4ab6cdb94bd5afd1f0863eef2157425d4ad1c4ebb1c887de229fa2a3544c81920ae22ccf3f6e8439223087b1b02444544e6375e065a23713f7da9b6e9e564b1477ac7741b81feab49f55e7af7b41f1297227b598ae2a4e20169de0ab82e56607a515746146eda5699db4c51e906a77d33e532756f751173851a0d1ded6cf63dd4b4c4957890ddba4a7c778e082b7507f1781eb6b040d836a0bb124d0d0c3ff1b8005e5ee38a0eabfd6f8cbced16f441aa369f890b27a23575dfabe3576db10f512c497b9ae5fd34d89155e100f536d7205705f0e983ac906456ff29b88daa3dd11be3cdd3645917a53694468157c448c5e3b78560cd16a1e6edcc0df62f35ecd6dfa947ff55b0bb0ac06f46ad04272cc958c137eac674a16ddee7b262f16b32f505ce104ca649a80769ca79827fac048b7435011bc4eb850f8384ea99be850cd92f2f1c074d09e3564cdaf1c22af0179dafc37955df82caaaf5d71f88f7b20a43ef4040aadcf262c2ff9bbc5ffa16b148aaed2b7f201ffd8e1640666dc037eaa8318c4ac8f65b4472ccd6318f219476d147bdb5fa2ca2e05dafb4d0e7c0b5fb42c6689ae9968e50d96a798d57185ec29b0944bb21e65caf385228cfaca29bbe283bb9765987b2808abe055f55449f6be620fef806e115f45790d15fda17575a4cdad1ae77bd1fa72d56fb31f56b20a28533ca4aaa08d4c75222217b46e488f8102292887b8c30c25a3e01e719cb7e705f56a23ab068498528b2af81ce8f4b1c5b1761faed230c99bd5c4d418c59c8892c91aa4484f5c401be4939c86623e2196deb33cc7dd467504dccff5ac4553c22c444efb9a04034d24bd6cb3f79b4c0e682d7d50395f857d0d79b2b8cc436dfd22d51b9dc2d3fcd28b6a3eeb6f75407192ef3b4f7121fc61c967f4e5acbd6602464a63699467769b27b52b74d7f8e679836b0114b518c6bf218a9d365d210c516ddf2cd070a8077ae1a0c03979c4404aca7608ab20cbb4fa4f135abdc443744ea2abc39da526773f86f945a23848bdfd06ed5bb9aa5ec3f3440d3ff3284c43364f0e0eff013c38a8b57a46d01e4cfb49a62165370f84815588df27f06e9a2bb3c70d9a19b5d5f9cc50ac0d56ecbfa747189ceba88d822747af593cc9db4100387cf14c772ae7813b9023586a76a8fafaf5db371bf4a815c05483ae70ccd83b24e651d977e6bb342010b8dc1f09fffd83205eb192c3928697ca1977e47ecf03328b11b0f9d1cd7f44f1875f5c4134b48be953420520f1c92f8aedc44ec72025f8845d399249792c80124ea98df542d2147af5d2fedaa9ea6d2e4a2a4cb1496b93e7e6abb28c8a48ee185a8e75c1f71102bb87b458e85253bffff13fe3a8256257a252ca53110807d1f5f9a6ee991677b510b24f6ccf5713463e878902a8fd5d0207fc03b36174cce296ee70de8af556dbb5a16c46fde35641e35e4b553e69f949c6d1abb3487bd8862c7826a2e14f976844f6b58a1cf9e4a9fbe1ae5ba68f6152b99a36024eb3167b0d793dd8e7a13b40f414beefbe39c07779180468c778c0269ecbb739e67bd5a55a84b5d468f56a3267806deb692845b62e0be3f76eaaba8176a9857c5c3f73b6ad79f08f560dc8a9b52bab6297ab0aeb0c50f7c64f9eda23cbbe0ecb00d6a6cb5f583f1216d68f30c3619e690abef33c49e2a77108d7db35a688ab0bfb955e44578f681a61d3b7676fde51c1dc109d04c0bc2e3c4d91dec9745d09e771debcb3bc4db3d02185960650ddcff95e12f66e6536e9fc07ffb55ed9e3c30e60da73be7c587482b45d012f124de6be0e5ded5aaf571bc8226393ae766a1fc95955d19562a3866491ab62ced500a3f734076d42fd27be30669b1a6bbcf7d431d2e7988e433586b28c8e2031ef574b8bec6b5c1c99c75ebc5bb0498febb843c06f32ed0211313f78bf2e5ac8997709cf7b0cdc24f261eab8dbf747af1da93053f34ea42be8bcb399660db8f47933838a8f19d5737afd9ac3c9d7d77af6231616f8015069ac4254b55694cfb58812069336a9e155a2695f489dccf0a23595175b15fefd90113b4dde38480db07b8096c231d13d1045d36c95eaa2d0049562696c0515b6e970e8d3c6c4721f180b6d918314c5f65e3a64fa80ad23dba37f3d0186f4cba16e83f1271dadadeae76ac06999d0dd8d7ef1a29618adf76b5bf7e1b7a7434914f4892eadd9f484c34e7b73fe2e779d0d83ad8829f48fae8e564ebb56339dca12563ccc5a33c341c664f1efdd0bf4530b1ffc94b8a75c13cf5b1658678e704d1eccb1f9282d38a1c117eb6e447bddef236b4a7a811d21b30239b439d090921d134825c3cd5ffdbb21bda9c4adbdddaf6429f00bda3bb96f1719648a0662a286f6c50e39d9ea86a44bdf2230ebac70297e59d636016db04f9798f38731ef74fb35aa94ffed43c8725d9bf00bdc6dbf85f63622f5eae5f502880745d4a8dfc892ded9b7c64d5c0f32162eb16700fab72eac8de82fd41675cf8f7bf0ca5830a22a2b8b3491befd371830b8189c1d4e9f7884ef2fff436613e3fa07cfe2fbc4347811431195deb3b5b11731b043b828cc4e135de111654ed4d55b6bbc06e7b915307538839ebe6bd860a69b5a917ea5feac52792099a6072a65509e5c7eb2c2607ad7193ba8b04da956e12d503c6f447b7bb6cd3f3e321da652976cfc8bdc2039d26f88d17fd866b1d4a10fab50ee04ea28bbb07d14467d4da4cb114a77c17d4b3c188a6093f995dfd595f21909db722ce5b6288be73ab784d1702464a6ee2c81c27b544ccb6c58aaf568de1c40d4a2465a05cd747cbdb0eb988f094bcabc07571fbd18e01e6209379845d89efe92fa6942a535022e5d559ba33b50c5949afd0ca16b6a7852482aa19dae025443a8317ae9a3325545d79df1ac5c2933f24485a52bfe048a8c3dfe598a6c791292a3b6090c25e295d56054176b90f96d60c1944f0e34540a8fc6e7116f47b56ff756d8c9fbd1b9e495a74e6139a5076c169f9ded119e75fb97c5423f2ded9393d02204ce32f2aa0fadabe15ab49eae31be4d5c8bfc8bf762063a6978fe102a90ad27d1d1c558d6b5f7154858fcfedcb56ed4df5568f3d758d34a8b0f63356a8ed99be642922fe0a7b40221baafba3ccf019ce2a12e5bc1be8d632c4d95ff1568403cc4efd24be1c0a7d0e077eef3c970307d052266b19b664f05fa5ecb02a8b0f06bda87d3ef6ef0e967a6e3c3639d9e2d8f24dbfb04a93c39feae6c6028e8ebf0b1495957be7a609ce316c988f1cb4f24fa35d631aed90c034c0e2f290f51ee378238a53f116d0d99a0c167284843c54556cd27317e4274b3213aa2e65f1ca8ef456161eef9028bc940243bbe51ea86d79ae3c0d9193dffb8e7002e6bd854b12f944f94b05f9dcddebc213786405bacb13f77e11c5ea4f49c475d7984e7067eab58e4e2f1f697933c8188607206fc194dca98c7919993d0ae6a832906b5fb94243711b43094c78d90eb4f5d105d6d76019ce59ce1374dad9c12a624c942d24b39d4ec1181720bc0d29f706f246af9b941e9aa5cd54bb2a1a24882a4ec17c70b3d2b84578549541b04ca81a3f36f9a77d4ec09f39f4c6a3e966058161d3ce2ac54f42621a7f97e1963b75894efdb98c72fec27e91447f668b33ab34b9a208a77b514829293e176c5de953dd62d9fcfca247bd18e42f0b9418298129318bc897b02b35946b953400112f9ba5b7a5c52857a91ee62b3085226d6dd8854a8bffbaaeedd507fdb11f2972b7d4d4bd9c7060521328db375159b96fe1cd3b2ff06ba6a7a149541aebf63e44fb8b4209a8d00e9f880d617a0a798111d387fec77e5c9fc1593ffc3fea6cc2cd0c459461263158425b250e1fc2af1633cb5c018101a976836053fa2087d2093647cea873714a0db74d3014913435ae19a81125e31fd3197342d39f61053c9c30cb218072236871fc31b1067f568baaa0fb3990eee79094f57666a2e8633aabb653deab1d0f49b2109882c596efca80d61f78cbaf6e438527f4aac12d636da64194391b85a8a1da7917094032d35264528fcc0594ac5829388540746cfb7434fc49d56b873e0f3af6da8bdc208c9ba93e2c054fcea3d2e25fafbfbdb9aff315b786252ada2e1ccee25fa88383610ba752f4426cd4fcd8ce885f8ccea384266ea6ae0656577accf2359edcf7b91b40555522a0855b147ce2d7f993ad64918e5e5497e66dc81b2249bb031b393da9d1952211efcf910538e36fe6eb80440e4355d7798a93c60d2ff8eaca37113f6d97998966002c39e6f0f10b352b325eb77322970ed7611787f3876afc57543e7148e8791e114a8971a070cf972f9cc6d350a0e8c9bafecdb19b393359b780a0b4d310b19d627afa5a4d75438d5c603102ce6f6ac288b6dbfd4a542c0a7c91540fade0c1a07c82d60b8164ff94a95d5dbd38f592544d61b01486c5bb7b578d26fbe4e68b98d7e2cc0dea8d35c402ebd581b5d3df616d19109fcb75de1d59bcfca386961573fcd532334add52aea63b4f340b2705993f9eeb8abf919ac1c9a6db089a264ac63fbc5b44de085ad59d887765bbba9aed1bbe8f9c6478681dde89ac4157817d3148ab942a30c70639d1679a69f2034fb23756dda41e7f38575b3e971152b4da34e5e6db11d1bc42e428cfed34a294c4d942f37443294406fb66de22fae49ddac09bc789dee47af366df6c7d107b8cc7059ca2518ab78e9dba3dbea75466e91be5a532428a825a68da1c70e54059226f3a8ac79bfbfc8bab84b0ef1b0da3bd514185b4845dd438c66f08396c3df4ce1fd87d456fadf09c9505f775e74ecede92c8681d7c92866bac05e04e7fbfae758ffc11ee995657fd2fd6e45eb94edd9d9719361116ddc8f9c997f62e0254d019123880765c25e233dd0a5115783ee1390b13f5b9cbf2cfcf00289ed0aca0353b6b6c9f11d9766228a419aab796d594a045eb12d04684d6a462472ee01f93c94c0ce5d3094f69ba507cb8bc778333a2eef73c7e6a19e949081ce9a23dcae84b7b6768cac804830533d1cf43b9feed33f73222b278d31569c8c5fcbe78804eb92bd96f1f2b4c5c366ca47a4d7d9ceade01426caa105e8e8fa6c26ca09b3d8ddec6fcbe3cc0207a0f85649a1c52311d5b497db655c307e91e491da3d716c85c428b05ff72ffba62c3571359f289a96627f3e44a5cd0166da159fe74dd288f3a3deb2dbc049b7fc97e6e0f835347108b26842021d6b393ddd285825ddb7985c82874b3897dbf7082a9f2cd32f25b7f72b4e9b83e85a85429100efc5040e8d87bc889a618b9b15882f41fc030a2798ac7bf1367fee8be6352f037530c028e7d1a0be6f2db73157cca49d55fbb81ffac7c83f636d3eef3b1bc7a74b3b132c37d6c09b625aaf034493038d1b410aff5238fb9c1469e774a56fc937e7452b215f3b65434b3bbfdf6250f5befc24c11cf37934f5a9c8d6f680d79683c69b964f33c762a5b8687ea90d41ba41cb31d8c88f2502584dd7f9305540401fb02c70cab3f05fce3f91fda7d9801e28a1adee7abf233855f73ac1cf80e65e15c8912a71a4ab931837e2037e95b8873358d0f8a701600b7a0bb5d9192dbf2d6b390081b1b79ba24aa570d99153a6b7ee7f0950a510cf54e3c1939583e9d281b147d789e3b4f1ed74ff91ca78371d77bb73bb21081b9bcaf1f04d9516a24311a4ddbbb066fc4ce05a76469e1573ab39bce8e6143d95e1077d33c82d700ea7db49978d57f6f4108849baf69a0062e7aee686888c22fc1ac868bfb7ad0673332a667a66da924f598941c6555a2e8100f55751819a42abc96e4a290d9e90a0d3ecca5776af69bb2d9b01d1fb01edfe8b2f9b8bd3b23bb44e0965550aa14524792f333cac5215012b7971c7a2ac18b7712198cc9c28d96af043db1177ccf22add82a182e078f22acd7362c17933ac85b7acf4c1d7a8d266ba841bef3e4e8e6d0b4c165b0600004fe7a322a8f2ecea8d3577be5c30a5327f8f0b11e6248edec9d5a38349ec139221a49892899535a03baf394999f0cc1c2f4fcb865672e870d9e275a642fc628c2fdf3497d384242a0e2b49afd5cda81d0a68f9c278340b29812e270bf55a4d37ba6f2afcaa753de0a1548d065bb6c186462853f290be67417bb7a5e47f06e34bffe717bdba1ecf6487f58c5c72090d973c691939a62922c03b34940db27e4d2a8451741742a3da1b0efcbf154d1865ed268da8c2efc7951bc1919f6306ca072687393e01d1243eafb4cad72f99d4fe60a2ffd545bfb10efaf93c5ab7ea88d9d5af4e887533be13d35fc1164eadb652f649331ecf7374cacd5acdb038848040316c2c3afc5748c25ee981674ff3882fabcb17d0020128498bb5fa5fab5734a4cedd39f33162617f25e4af9404ea4debf6893f8683895a79d5818b0677a16cd81032ae9e2e5db0ba3b3a754f0eff9e79f899df66cfc2c17eed24c644d23da0ac5a9f02c7cd6d9aa48b29dd761ac73cdc69bba337590985d4c4d5edecf5c417402640b8617b29759cfd98d542445f19da08d15fac7cc881278acd6b1ecde83d98a442781eb423a748b37aded1e62fb70de270d9e4fd434561a4eee9338f1d3755a78b8ba3350ab03c2aacc1a636081a1e5f79ac2c3a692abc752b4dc9e3977d2f366669bfc6972384009b005f5dc4c4399b9ab9baf05a7442d3d4d17c3b0eb5cdf4017823ff9a5a8b566ebe40fb49cdc765605642b605618eb307068269dd6cd60556b39b79738f397c3bc00cd604e127685fc8f64bdd886d7440827f1dd42120c7847e3957927c64b9b912d6ec2265357d461c0a2cf9f97ee85fedad2572b91a973d9d38da1a3398cd9c00e4f8c0659d400b6dea9f813c49da54da9aea9aaca196147c96e788fd7b0f94469711e7156951b81a64fff44f38d07f08fd2428e242c534d1e01c549d8f82e11a60e0f73205800fc95ff7126c387af1d6f1cc4070c3a9f285a9e1400a980486166c5e2e09760e532cb0a28c21fd11a05dd4cb50d179a163d3ebc644dfb5719f544f36cb40800162e79463206dc1a2e5b14d94026a6b1b177ce1543acbf209fe8e426d132dde64f65fc7a65d81c0778a7af6c5e2d745a93eb81579f63f9caec1564cde61f594886135a2fc1e473deac661afe828603f56f29576229fc9fb6ae19111ea7294ccc9b45fefe70c01e8b3affa9bf563b78ce61ef94434f1d088fb9fdb4ad038409051c67ea7a7612b6f93184685dc41bf6596ea5ef64202b5a8cbe4454e828328ac91f3bc91fe8ecb7ae2065a78946d8d81c38b0e8e928cadb09ae6be9424546eb78660c679716fa6be7cf91b258b7faacf23b08f072c14328d75e284fb9a31cb9aca06b8dc817fc9142e0af36836fae42d93ee5d6732b96268e9bff95803d5dcd7125df95950752a3b4365a0b968da6ae8a081c052f1b553f4f8d033cb2f56fd46754df64b1c1ec4d5f80b67cc0049113bc80216dd8b2616017fd70be4f069f551868162317c2d3e76904acbb0426f3e8689225b8ae822dd7b7e8f4d7e4360ee71f87457360125e495bfbd5a23eff895615644f2385b01c801cdf0f7dd63bfa810bf3e177e0e56d2477a5966021df2b85bc5f407fe24f05b0f9c1647e36dc53cbd3e3c6df140b1f0690a3dc28f92cb261f212e7fea6ed62898f74c903516c06c1829f93d1309c3712c47af8bcdac8edee81a8887b82a1462c5ba17b30d79cc5a21b836aafc5d1fae3091bdd288ec2b9b66b6d86d62ea45b3fafbc03eceeccff24f9b01aa9b9c9825b24785ab79c235ef9a3082f421870551f7591524a625689c5542c873ec3af26babb992c77c2c3bfc59dd70d4745e4461acd8da079e4b904bfa9e9154fa841a05a549dc57cf6464fbb41f4a589362f60a2b7e9b7094026922a7d9062407f16029b5b69e46cea99e22675645f7ab2042ce4854ec98d6e32c550e53f217037b9bd6b078ea73e5b33ee24d11149b0ab0386099936e08f00740fa9b9bfbc8050f096e4c2e9cf37e1cee738228d1c5ae8602c79ff050dff2e8d51396668236cb74186913e4f6869c148f05f34e557105935df9ccbf679adddf1fea4323e928ae0729f35ae239d366e36225ee9780888e766ca285c3c771d16cd1767b0e41fa1e3ca4f65443ac9511fdb336adad8bdd66e337ceeeaf1fc760a97731cf307df567da30b67616b99b02bc40737d4b2b2f5436bbf698c51822673b781e96e98d343a8edf550e22e2479a7debdf418fc4116038778586ddf11bb4ee4d079ff6b94737ef3242bd12ffebcf2e981c4d28cd55dc003b8c62cf707711def1163b2b5404370c55048da69c2c2b312720b695e86b43a891d48a84fdd04439c65a131e03da567d1d2bcac065e7bdd4bdf4dc5dc5cc27548f0dc8924a32e623abcd7fbe3392def6924f73a8bbd4fcf9c5efc71ebba2d9f3b48443480961c466f68f80f3df144fa140d3a625ac0475f207a1ab306aa6b37f1ac94a81b05445e17d2952b5944c2fb323e1b12f7aad7b2f8080af1f10974007d1765bbd09d7e49a3b84bb8886cbe69b8f6cb7b5d603469221512ad74dc5dbefb835730e5daecee1c61551ee4c83886507dd4809f1e972c39279710a1226b59790cc6965d936a21765369bbe8a4c45c12dacdab028af533d7f0690fd3a4e7110ef35cefd95728628743a496c56bc192da2e353525ce6ec70e58dd93abb43698d2d90f3eb96f2555c44687dc61a9b04dfa79341b8a276f2a51042b30c30c89da37a475414832117621e7a3d141b04328dd4b8893397605d71091df4d0a1981ad23ecce590b62d83d9d32beabe5ab04b88805016b936db753d0dc875992545875bf70dbac88c561e751ca12b65f53b6a6081df4aa34a450fd17188132a37495e7dab3e1bc0a3f141a60aaded537e75a3e08d78f1f92265bc07ab1360c0d0eef82557d8e86873d9b2f1498472a9db9cddde17ff363c15c784020d22824ce052000f085e8fa2aa0e83c29f9d3e28dc94f92a2c4bb7ad9c0237aba776445337a17391520eb1e14cc9bc82d783259a4e124a15d1f8b5d61c74e03aab6af3ab126e3fe428d5fa0c64ac5b454e508bc629ad7c63b9031d7dae2a9e80a381ffd4af332ea98ca3fd5c1b0d3b61726a9233bf1b6282195956f31bd6712cb92b014249b64badc84af627a84b607946607e67976adb6353ab78ec91ab226acf924fa2540c35b0b3829e887af0d87a1bc791d9d0365602510ded30266a71cd086a81e2edd2182e8c2c444320262289d1bcc3863297e93a3f19336d645fb4a13cfe288697a5b19a118deaa00aacc079a37807a215ec9a2ab09194b64f440c10fb76b0db5dc2e1f4e94f22e7112ddbe8cd5ea78167ccf7dcd7b80c6d605d0754eaee05c0719e27e1b37669bf7ac677913c2311bb9b043a1611ea884b4d7f7af1fdb696b100bfac67946004ae86f391f9bcb3edb586caa5e4225c7055d055032a81b8ea210485cf3feb0e18121ec9767f56fcae21a3302cbdd766af2d513947d09aa8c3e456a2cae0bd4e6579e4ccf7c61a0f8e2cc8bd30aaf3afa9d2b7573bbb120b1ac8c01081f3cb7fd3dbd4295c4bf85ce05142ab3c3a8c17a84b5cad416ec69bbb858bb4a74acc143fd8e9964da47e72a79f9e9ee5959735029a13cb1831d8759aad44c427bdf32a78a9acdd294c88411655db1527c8823e5351482b7aac990ce25f66f792af2e21470d21e9182b22d87db73c3e2c4f4fb9f956ec7f62b65138522c802500ba9739cb0f8ff63fc24edec80fda60bacfd65339f0a1227a806da948cbe0616220e0bc30f613069b723bb1e525b9dc0148511c0630586b0f3b9f1d8c6d5890f2c347814e7f0b2208222d0a69cae061b9ce35dc55883c2bd48b81423ada47f826ef865778bf0fabc2fc13b34a3355b7e84a509d3c032b54be9bff983c0db908876504609ea464482892b3354085be547ec436beb4acfec476f41e14692cd089e02c909876f96aa57962cba5d87d989a95035b376269a24007956889af112352abb2923a482a151213612229c2f577c3d68c8234c6525d831fe46336a748bbdf4e5a3c91568e827722339321fdc38533ab9552d52c14d01c3bcbe698a224a1e126eed0d43ec254c44135bdc518cbdc8c30b7b55d2a20560fcbb760383e477f65aabf63a1a2aa734e1207e701d454f6798b05197c715039494cac5c6c2f7b6f4dc5add1938a7e670026b22d7e39861a089e72288e8a93a0a5ea0eee8203c8361c7c1195d737b6d2b64737e4c02722e4afffb1ee15dea85c4087fb32c28e0baac385a8dbb235b615dc78934e387f08054ccae2c1e5d854e2abde418c12115725b1889ee2b45fdab90059383534e069e8d7983e8c29f739adbfa80c951d5655e9acd4c7c9ed103b73ffe19e50d38445b6914734d00ee3a670294aaf16ddcb8f3ef3a50a94a6713e551529818c676fd0d4c74d4e19b9ec1fdc7d550ec8c0b0cd48f2ac81838b61d63e59e19315d4b5a1b2890ee82a19baeb438b3ebb9ec716513c4cbe57e372487fa2c407434ccaad6588ae2c1403b3faf9ca06cb48fcda6ff065ee5f2ff68c1354277127c96200071706b1118cbcd249b0311819ff7230406b92e9e461c367e159db1a27df3b66524d88248e234a955a6801fdabf4001743d804cb050330cf28c0cfbb6ed0bcf7a51f26aa8de0ca505ced087421a4e305bc283ff9ca30b78d72c4e4ad59acbfdf2739e2f85cb8f2cab7f52875f9f3b6c8605872f212501fd609d3ad976e71ae9cc76746893214bd1e76037af145e1746f844d45dd07aaf1bd09d68562ff9dd00af482df8c7b5933e8398e31a99d4b5df9f7ca58bf12c74c225ea75a74ced5dc035757fa87fe936974658b27886892c5f76bad6299bc9b18157ed5dfbf0ab630db7729acc051585a5c28f353b8606332c9f7d3043594110808dc1c21da931a115835254fe6efeb815b56e1633919dfec4921c2bdf10a5ac214264fc3d4c58abed9398aaf85e08a0ed091e025c71d81139ba0825d21787d9726805d8af9f14db782127745d2eac6101c3220f20fc7a7504d45032dff89ecd29b391958816948c9a1f8b7000b2a7ced2bcd2125d7590831e72d4ed4cf0c9537d4cc0836925dc674de4dcf24c2dae2e95d4b50206427bf35c4ee5f2f738aa9be8cc9808b07fa3349593d83a07d38d949e3a1501382337ac5f0913a7969ee2d65839e7ab50f9ce506d030022c96e465d43a59a331d27a2445f799819fe8fea3ffa563abbae5053de82ccc6fddd75e8e78c95695a2663560617591a7eadcf4ca1267ee5811e91f97ccad57e17ca33f3dcd62d8a878cfd52fa429628fb4dcd27df16b93ee0c19cbdfcee854118a098e67fb2c667e8ae13d4361c5aa45467e78a1b711a3769bc13a7c2eec2b38204c13f8b54778e18ca1ce9ebe8e3c8fe3c98a94ba6dd9ff3af8c2b3b284c50d95866cd59d2e95fdfa2b39a81b45a2295954a1650c2b49579921e78a7d73336701b364ac65688fe162871e4dc4eeb578387167f0b08a691b578f3c4058676ba3f7fd4891389ada85b9285d6d5791f0ecd79d24330f50138e18927b390552f78186ed803e72baf78aa3a640fd0a7de2e075aa5804f0cf284883bb950ebc9448e0aed7592ad276f78456161c9393ef943a75a8a79669d9507a440e71941e6e4bf9ab6f6f8a253832fe21c173dfb85fab2e32905891958d380a47144ed22eeff8ddb5184c6039a1191101c8a06e44333d10dabcf1f2c65e51516be46d25301faa595b8e516c76bc0a972a5740cf01d37646570918284841903f412a2f5b4927d23b6e5acdcfbc853f480974b043b5ec4c53aea6f197ec8dbb394099f4e5e997aa09724bef48dc1d40e549aa6419b00d4ccde36c28b5f35a17a1bfabfb4f0e288c86e348588a7045bbbbe5a8e879f05798be4bca364cd69295375485250d921046280bffad4521b18fa5129e94e69645253617233205f92632a2d27045ec0f07698c98728191bf031e67420e03448f2415197850050cd4ad02d7f566b311d97d28bb2a51ef64ec1280c04b1cf35e89380c410feaf9b1c23183594e84312110d605d70b7c701ef354497f2f86c612b2e5314c00595da1c0d6d7a3f4c1ded5928aa0ca41e04f74d4762188c2f407ca71db284d97abb0c5c3a14ac8d8a7782a20ad58bd8f5e6605f659ccfc06cd1af369dc4d6eb4d00287646e0f26044361dec7ccb05b088ade298a67a688b9953a047d43ecf12443f5365d640e4b40a3f3f6f16d6b1d148b21a12a35ae13f255370005a6b2b6ac8d10a3a62105490ffbc57a5df9f0bf29fd8956f78462659aa84b0ae6e2616a19c4b4ea4914a4152155ca4fe4e11aaa0ba150aecb64c0faa90c581cff07d3af1bc2377032b780f185967e7e62ddd73f48603fd9210c980cb5c5a309c123dec40b5bfe2ee9b78f9c63c03cda72535a1cd3f70792793f59c3f2d7734a2f5236f248d7f3ca2d22ef58aaf28e54cc7176f9ff63b753fc1fba7aecba9d33bf956e4e3f28179b30517341aa4c886c956fed7e9b808288fe3b58464da2e20b5b55681cfbf426532e67ef60f7ca8fcc3a89d1b5e89b5d5abacfd0c0dece2a5552891acfe04f9dff21c2cd8bdf9e4d4691c5297417903102fff6686ac1e5957821733f498677cf90821a551016f43e73efa1b9aa8959ba92b653eae4e9aaadc71a8605bfb43e76916e6bb59108cdf1289d30a1a4b8a48f15cc4512ed5e362dca2cc9b8631dfa58f05144085ae8972e781515649b9e2e5d4f51798ace634ff4dd67f463841f872ae08a4ece5de5dca16f30e0192afe845603ce9847869e826d7ef54565851bfbe31a7025c39047c21bea66cf6386fdf3c8961a7d3f5aba04d16e600a261f4e797ea2b39d250c9e5e3e61de9250eea19ae2e0d2142bebdae270665c140fc8135f5cce5aed75191e5d0dcc6a1fc028ef55fc883249662f91f267090c91fa31e803deb91907b3b7b5e8c46320e63387941d4afd6b7198cdd8cc560a27470af94e9dd2f0080cd12b1bde4853ca4fbb4fad308a7c2227f7fe9ecc16e5182841280ff270c03c1df35ba82666e2ff9a49a693302d176b74ab76b26d28be819a24af34ee8530e55306a8d77385f40f6b69d4abd19466e092a9e31e374bb6d0670d3f6b0a0c6fbfe09db1cc54c3a0b9c0176ba82b0d4b30ee7a814fcd55bd460ed39eb5ff5b496a75edc382ae5cbaa610aaa1a46492a8bbcd79ac0c80428cc0b932a826280d92a41b6d0525fdddaf331aeeeed8b181bf7a0cb399f958b35b5d925a83e96ffadc78e6c7b5660076dfd64fd11f0cb069d923d3b26b41c6e3bf1e7bc8922cc433a4fea7fdf8ded7f740d30f45b510211b8c63aeb3f0caa0ea6ebc55cc1dca157978a836f3785ed8d46d46a507e88c9fd38d98ab2c52b5b9c26d87257546e211a3fc1929b978b5080f9012edc11e13950fcbed6055a1c7d37d159ea55a3b2abaa7914ae49c5f6af7654ede1226eaf1eca1dcbeaff85eaef46ed559d6491799fa661095cae8f32d85fab389b3ace5ada12a6a988bd9004c079132895c3196c9991d9cc7b439b22fda2d53e151ecbed6a10f82f7a6dfc748203797d4527d95ece4fc2727faee311145c31a849bea356f3011a74c1c7ba5e55dfe254562187a5a554b14de9c9f3d1d5e3ec00bed8d1c80ec81f28ca3b8b5f3413b6170259faf5d622be0053013150cf7b0e5878374ccb4cb23d52abf3aa830afe46fa67028f178d2266a32bed3b05355dc193bb24484fc08a36d17d235c49961b95468eaed7d3391727270a03e40fded88210bc0aeb4bdb4b7dd9fbee2476caade78d5ed2fd7ed0b1fe6da121581853655444c62088a9209855788a9b5ff8da111f64b5a7173fba0cc86dc67471256df5566ddf55959cc22b77ff58699574653b51441ee80ba0e210e5c2f0ae9011be2c4647c423d763b17d026ca5575a2803dc558789467fdf134336f72919bcf1f60e88267aba9454db44679b15de420aace5f9718af951e2b70fceecc4e547155f01cc8859236458107660487b6e1573a811370f1c4720bc3c9f3e64682642a24ce2c701908e53868f4ab324626da853b37c070d1f0e0083e5d2adae45baebc8e7a8647c18d9d99adea4ea5cdf340daae15fcb321a54e3053ac6fcc3b68aea4ea9a850c5d7bc145061904a3146e374b2bf1712e9addee0457268c1709e693b8fa7d4384ff19724ceae551852a4ef13c115669c6d04c1e42aa0bb7768781c0fa37855030c81294cd5633a2ece03014ca2c3452c119e42617772ff606dc35cf7b0453340fdb1b0d5213946c4917f332b0c9bce2f32924d653dfd9abf11690107d3a70dbdceefbbdd1603176f7c3b883e1092bc79d8bb14d5b02fdb1e368565eda574c12b3b9bc22b660eaf13406200f35cb37415a49cb61baa50595d12904fbd1b30331bf603d414c03f7d9ea9bb798b33f3878fc9cd42c16068d2e4912632a6bbb7a34580a27a12d8f6079453cdc015170c97afd900bdd4c6f7da41beab8aef251efd4ebac7bdef43673858f0cf9165c01df74ef1db6459489a14b4aeee0892e768302c6eea3723dfb6cde9fb1dd0146500ce1dd320418c77954ecf72e2d9ae620d1783f40a5b80d3de9dd9056db25ef0ee0bd0b9202e73defea70ae0caeb8402b6c2f77e5e37f677398a531d22ee5a7331a84c506f53f6e3c6c241e93e490d432652dbe6025d3ffaf3be3527d695c1f0a10bd52f47f91de24c8aada5c292be07b0c53ef684e025a8172bb679446c5593294fb3b206cb20c2b29379e17df5a26549acf9e0844f1301c23a87f9cbe9d823db268f0e3d674f2e817f7df2919a871c98e9d5b62d5c23361688cca9c03849eee6e627a686a515a9d4ea1b046692b061d8b6f298b8d7d5609590554da95f4d53595325ce06bfa933bbf955e1e69c6608a49bbd498ed513f2fc615aff22f7ce390ee8ec7dfdddc5d28c7460207af95f64af2b38293b89505648a16f6b38eb05edb9775fdc24b9dabb93f8914f41127025263d380d35ad16011ea42012904cb4e631682569ba7e4ba127260aa9155200476a5e16e3a5621ee0bd57bdda751a21c27a6304dc72eaa5bb5ecabac12d2bf38eca2a74aac454d4657d460fdeb5e64dd7457545dced3a391f118cf47d2e3e1e41f1d776b75f318c63ddec6459d02d53047687624a0ebcc8ad25709a46765e53eb79c991143018eaf40cf8f86529aa0560b38a4c9102b3bd519bb5eff8b</script>
  <div class="hbe hbe-content">
    <div class="hbe hbe-input hbe-input-default">
      <input class="hbe hbe-input-field hbe-input-field-default" type="password" id="hbePass">
      <label class="hbe hbe-input-label hbe-input-label-default" for="hbePass">
        <span class="hbe hbe-input-label-content hbe-input-label-content-default">Hey, password is required here.</span>
      </label>
    </div>
  </div>
</div>
<script data-pjax src="/lib/hbe.js"></script><link href="/css/hbe.style.css" rel="stylesheet" type="text/css">
    </div>

    
    
    

      <footer class="post-footer">
          <div class="post-tags">
              <a href="/tags/wxpython/" rel="tag"># wxpython</a>
          </div>

        


        
    <div class="post-nav">
      <div class="post-nav-item">
    <a href="/2024/01/01/wxpython%E4%BD%BF%E7%94%A8canvas%E7%BB%98%E5%9B%BE%E7%BB%84%E4%BB%B6%E6%B7%BB%E5%8A%A0matplotlib%E7%BB%98%E5%9B%BE/" rel="prev" title="wxpython使用canvas绘图组件添加matplotlib绘图">
      <i class="fa fa-chevron-left"></i> wxpython使用canvas绘图组件添加matplotlib绘图
    </a></div>
      <div class="post-nav-item">
    <a href="/2024/01/11/uint8_t%E6%95%B0%E7%BB%84%E7%B1%BB%E5%9E%8B%E7%9A%84%E5%BA%94%E7%94%A8/" rel="next" title="uint8_t数组类型的应用">
      uint8_t数组类型的应用 <i class="fa fa-chevron-right"></i>
    </a></div>
    </div>
      </footer>
    
  </article>
  
  
  



          </div>
          
    <div class="comments" id="valine-comments"></div>

<script>
  window.addEventListener('tabs:register', () => {
    let { activeClass } = CONFIG.comments;
    if (CONFIG.comments.storage) {
      activeClass = localStorage.getItem('comments_active') || activeClass;
    }
    if (activeClass) {
      let activeTab = document.querySelector(`a[href="#comment-${activeClass}"]`);
      if (activeTab) {
        activeTab.click();
      }
    }
  });
  if (CONFIG.comments.storage) {
    window.addEventListener('tabs:click', event => {
      if (!event.target.matches('.tabs-comment .tab-content .tab-pane')) return;
      let commentClass = event.target.classList[1];
      localStorage.setItem('comments_active', commentClass);
    });
  }
</script>

        </div>
          
  
  <div class="toggle sidebar-toggle">
    <span class="toggle-line toggle-line-first"></span>
    <span class="toggle-line toggle-line-middle"></span>
    <span class="toggle-line toggle-line-last"></span>
  </div>

  <aside class="sidebar">
    <div class="sidebar-inner">

      <ul class="sidebar-nav motion-element">
        <li class="sidebar-nav-toc">
          文章目录
        </li>
        <li class="sidebar-nav-overview">
          站点概览
        </li>
      </ul>

      <!--noindex-->
      <div class="post-toc-wrap sidebar-panel">
      </div>
      <!--/noindex-->

      <div class="site-overview-wrap sidebar-panel">
        <div class="site-author motion-element" itemprop="author" itemscope itemtype="http://schema.org/Person">
  <p class="site-author-name" itemprop="name">xudonglei</p>
  <div class="site-description" itemprop="description">搬砖 嵌入式</div>
</div>
<div class="site-state-wrap motion-element">
  <nav class="site-state">
      <div class="site-state-item site-state-posts">
          <a href="/archives/">
        
          <span class="site-state-item-count">283</span>
          <span class="site-state-item-name">日志</span>
        </a>
      </div>
      <div class="site-state-item site-state-categories">
            <a href="/categories/">
          
        <span class="site-state-item-count">19</span>
        <span class="site-state-item-name">分类</span></a>
      </div>
      <div class="site-state-item site-state-tags">
            <a href="/tags/">
          
        <span class="site-state-item-count">67</span>
        <span class="site-state-item-name">标签</span></a>
      </div>
  </nav>
</div>



      </div>

    </div>
  </aside>
  <div id="sidebar-dimmer"></div>


      </div>
    </main>

    <footer class="footer">
      <div class="footer-inner">
        

        

<div class="copyright">
  
  &copy; 
  <span itemprop="copyrightYear">2024</span>
  <span class="with-love">
    <i class="fa fa-user"></i>
  </span>
  <span class="author" itemprop="copyrightHolder">xudonglei</span>
</div>
  <div class="powered-by">由 <a href="https://hexo.io/" class="theme-link" rel="noopener" target="_blank">Hexo</a> & <a href="https://muse.theme-next.org/" class="theme-link" rel="noopener" target="_blank">NexT.Muse</a> 强力驱动
  </div>

        








      </div>
    </footer>
  </div>

  
  <script src="/lib/anime.min.js"></script>
  <script src="/lib/velocity/velocity.min.js"></script>
  <script src="/lib/velocity/velocity.ui.min.js"></script>

<script src="/js/utils.js"></script>

<script src="/js/motion.js"></script>


<script src="/js/schemes/muse.js"></script>


<script src="/js/next-boot.js"></script>




  




  
<script src="/js/local-search.js"></script>













  

  


<script>
NexT.utils.loadComments(document.querySelector('#valine-comments'), () => {
  NexT.utils.getScript('//unpkg.com/valine/dist/Valine.min.js', () => {
    var GUEST = ['nick', 'mail', 'link'];
    var guest = 'nick,mail,link';
    guest = guest.split(',').filter(item => {
      return GUEST.includes(item);
    });
    new Valine({
      el         : '#valine-comments',
      verify     : false,
      notify     : false,
      appId      : 'BT0Qw9HcTpPv1a6cT1iDBXKz-gzGzoHsz',
      appKey     : 'LMCMh8v02JTMFAwKNRcgoizI',
      placeholder: "Just go go",
      avatar     : 'mm',
      meta       : guest,
      pageSize   : '10' || 10,
      visitor    : true,
      lang       : 'zh-CN' || 'zh-cn',
      path       : location.pathname,
      recordIP   : false,
      serverURLs : ''
    });
  }, window.Valine);
});
</script>

</body>
</html>
